package com.teamone.etl.apimanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.teamone.etl.apimanager.entity.ApiErrorCode;
import com.teamone.etl.apimanager.entity.ApiSource;
import com.teamone.etl.apimanager.request.ApiSourceQuery;

import java.util.List;

/**
 * 源接口表(ApiSource)表服务接口
 *
 * @author makejava
 * @since 2021-01-20 18:32:06
 */
public interface ApiSourceService extends IService<ApiSource> {

    /**
     * 查询源接口列表 分页+模糊
     * @param apiSourceQuery 查询对象
     * @return 源接口列表
     */
    PageInfo<ApiSource> selectAll(ApiSourceQuery apiSourceQuery);

    /**
     * 新增接口
     * @param apiSource 接口
     */
    void saveOne(ApiSource apiSource);

    /**
     * 根据id删除源接口（逻辑删除）
     * @param id 源接口id
     */
    void logicDeleteById(Integer id);

    /**
     * 修改接口
     * @param apiSource 修改接口对象
     */
    void updateOne(ApiSource apiSource);

    /**
     * 根据源接口id查询错误码
     * @param apiSourceId 源接口id
     * @return 错误码集合
     */
    List<ApiErrorCode> selectErrorCodeByApiSourceId(Integer apiSourceId);

    /**
     * 根据源接口Id查询
     * @param apiSourceId 源接口Id
     * @return 源接口
     */
    ApiSource selectByApiSourceId(Integer apiSourceId);
}